home *** CD-ROM | disk | FTP | other *** search
/ Windows News 2005 November / WNnov2005.iso / Windows / Equipement / hMailServer / hMailServer-4.1-Build-136.exe / {app} / PHPWebAdmin / login.php < prev    next >
PHP Script  |  2005-04-04  |  3KB  |  110 lines

  1. <?php
  2. /*
  3. ** $Id: login.php,v 1.4 2005/04/04 10:42:27 hmailserver Exp $
  4. **
  5. **    hMailServer - Web interface
  6. **
  7. **    File formatted using TAB size 4
  8. **
  9. **    Get hMailserver at http://www.hmailserver.com
  10. **
  11. **    Author: Steen Rab°l <srabol@mail.tele.dk>
  12. **    Copyright (c) 2004, Steen Rab°l <srabol@mail.tele.dk>
  13. **
  14. **  This program is free software; you can redistribute it and/or modify
  15. **  it under the terms of the GNU General Public License as published by
  16. **  the Free Software Foundation; either version 2 of the License, or
  17. **  (at your option) any later version.
  18. **
  19. **  You may not change or alter any portion of this comment or credits
  20. **  of supporting developers from this source code or any supporting
  21. **  source code which is considered copyrighted (c) material of the
  22. **  original comment or credit authors.
  23. **
  24. **  This program is distributed in the hope that it will be useful,
  25. **  but WITHOUT ANY WARRANTY; without even the implied warranty of
  26. **  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  27. **  GNU General Public License for more details.
  28. **
  29. **  You should have received a copy of the GNU General Public License
  30. **  along with this program; if not, write to the Free Software
  31. **  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
  32. **
  33. */
  34.  
  35. $function = hmailGetVar("function","");
  36.  
  37. if($function == "dologin")
  38. {
  39.     
  40.     $username    = hmailGetVar("username","");
  41.     $password    = hmailGetVar("password","");
  42.     
  43.     if (Login($username, $password))
  44.     {
  45.         header("refresh: 0; url=" . $hmail_config['rooturl']);
  46.         exit();        
  47.     }
  48.  
  49. }
  50.  
  51. $hmailSmarty->assign("pagecontent", $hmailSmarty->fetch('login.tpl'));
  52.  
  53. function Login($username, $password)
  54. {
  55.     global $obBaseApp;
  56.     global $hmailSmarty;
  57.  
  58.     if($username == "" || $password == "")
  59.     {
  60.         $hmailSmarty->assign("loginerror", hmailGetLocaleText("must_specify_up"));
  61.         return false;
  62.     }
  63.  
  64.     // Split up the username in mailbox and domain.
  65.     $atpos = strpos($username, "@");
  66.     
  67.     if ($atpos === FALSE)
  68.     {
  69.         $hmailSmarty->assign("loginerror", hmailGetLocaleText("must_specify_at"));
  70.         return false;
  71.     }
  72.     
  73.     $mailbox = substr($username, 0, $atpos);
  74.     $domain = substr($username, $atpos + 1);
  75.  
  76.     // Fetch domain
  77.     $obDomains = $obBaseApp->Domains();
  78.     $obDomain = $obDomains->ItemByName($domain);
  79.     
  80.     if ($obDomain === NULL)
  81.     {
  82.         $hmailSmarty->assign("loginerror", hmailGetLocaleText("incorrect_user_or_pw"));
  83.         return false;
  84.     }
  85.         
  86.     $obAccount = $obDomain->Accounts->ItemByAddress($username);    
  87.     
  88.     if ($obAccount === NULL)
  89.     {
  90.         $hmailSmarty->assign("loginerror", hmailGetLocaleText("incorrect_user_or_pw"));
  91.         return false;
  92.     }
  93.         
  94.     if ($obAccount->ValidatePassword($password) === FALSE)
  95.     {
  96.         $hmailSmarty->assign("loginerror", hmailGetLocaleText("incorrect_user_or_pw"));
  97.         return false;    
  98.     }
  99.     
  100.     $_SESSION['loggedin'] = 1;
  101.     $_SESSION['adminlevel'] = $obAccount->AdminLevel();
  102.     $_SESSION['username'] = $username;
  103.     $_SESSION['domainid'] = $obDomain->ID();
  104.     $_SESSION['accountid'] = $obAccount->ID();
  105.     
  106.     return true;
  107. }
  108.  
  109.  
  110. ?>